# 代码编写者： 李朔
# 开发时间： 2021/9/10 14:46
s=[1,53,22,7,1,4,2,7,12]
# temp=[]
def merge(a,b):
    print("a:",a,"b:",b)
    #做了一个两个有序数列的合并工作
    c=[]
    h=j=0
    while j<len(a) and h<len(b):
        if a[j]<b[h]:
            c.append(a[j])
            j+=1
        else:
            c.append(b[h])
            h+=1
    if j==len(a):
        for i in b[h:]:
            c.append(i)
    else:
        for i in a[j:]:
            c.append(i)
    return c
def Merge_sort(s):
    print(s)
    #divide 序列分割
    #当子序列长度为1时，就不可再分了，分割子序列的迭代截止
    if len(s)<=1:
        return s
    #序列中间数
    middle=len(s)//2
    #划分左右子序列（这里使用了递归）
    left=Merge_sort(s[:middle])
    print("left:",left)
    right=Merge_sort(s[middle:])
    print("right:",right)
    return merge(left,right)
print(Merge_sort(s))
